commonlibsse_ng\re\b/
BGSSaveGameBuffer.rs1use core::ffi::c_void;
2use core::ptr::NonNull;
3
4use crate::re::Actor::Actor;
5use crate::re::TESForm::TESForm;
6use crate::re::TESObjectREFR::TESObjectREFR;
7use crate::re::offsets_rtti::RTTI_BGSSaveGameBuffer;
8use crate::re::offsets_vtable::VTABLE_BGSSaveGameBuffer;
9use crate::rel::id::VariantID;
10
11#[derive(Debug)]
12pub struct BGSSaveGameBuffer {
13 pub vtable_: *const BGSSaveGameBufferVtbl,
14 pub buffer: NonNull<c_void>,
15 pub size: u32,
16 pub buffer_position: u32,
17}
18
19const _: () = {
20 assert!(core::mem::size_of::<BGSSaveGameBuffer>() == 0x18);
21};
22
23pub struct BGSSaveGameBufferVtbl {
24 pub delete: fn(this: *mut BGSSaveGameBuffer),
26
27 pub get_form: fn(this: *const BGSSaveGameBuffer) -> *mut TESForm,
28 pub get_reference: fn(this: *const BGSSaveGameBuffer) -> *mut TESObjectREFR,
29 pub get_actor: fn(this: *const BGSSaveGameBuffer) -> *mut Actor,
30}
31
32impl BGSSaveGameBuffer {
33 pub const RTTI: VariantID = RTTI_BGSSaveGameBuffer;
34 pub const VTABLE: [VariantID; 1] = VTABLE_BGSSaveGameBuffer;
35
36 #[inline]
38 pub fn delete(&mut self) {
39 unsafe { ((*self.vtable_).delete)(self) }
40 }
41
42 #[inline]
43 pub fn get_form(&self) -> *mut TESForm {
44 unsafe { ((*self.vtable_).get_form)(self) }
45 }
46
47 #[inline]
48 pub fn get_reference(&self) -> *mut TESObjectREFR {
49 unsafe { ((*self.vtable_).get_reference)(self) }
50 }
51
52 #[inline]
53 pub fn get_actor(&self) -> *mut Actor {
54 unsafe { ((*self.vtable_).get_actor)(self) }
55 }
56
57 #[commonlibsse_ng_derive_internal::relocate_fn(se_id = 35163, ae_id = 36053)]
58 pub fn save_data_endian(data: NonNull<c_void>, size: u32) {}
59}